головне меню список тем тестування презентації історія створення

 

4.9. Апаратні засоби забезпечення надійної роботи МК

Прикладна програма, записана в пам'ять програм МК, повинна забезпечувати його надійну роботу при будь-яких комбінаціях вхідних сигналів. Проте в результаті електромагнітних перешкод, коливань напруги живлення і інших зовнішніх чинників передбачений розробником хід виконання програми може бути порушений. З метою забезпечення надійного запуску, контролю роботи МК і відновлення працездатності системи у відсутність оператора всі сучасні МК забезпечуються апаратними засобами забезпечення надійної роботи. До них відносяться:

  • схема формування сигналу скидання МК;
  • модуль моніторингу напруги живлення;
  • сторожовий таймер.

4.9.1. Схема формування сигналу скидання МК

При включенні напруги живлення МК повинен почати виконувати записану в пам'яті програму роботи. На етапі наростання напруги живлення МК примусово переводиться в початковий стан, який називають станом скидання. При цьому встановлюються в початковий стан внутрішні магістралі МК, сигнали управління і регістри спеціальних функцій. Останні визначають початковий стан периферійних модулів МК, який частіше всього за умовчанням неактивний.
З метою забезпечення надійного запуску від будь-яких джерел живлення з різною динамікою наростання напруги більшість сучасних МК містить вбудований детектор напруги живлення (схема Power-On-Reset - POR), який формує сигнал скидання при наростанні напруги живлення. Зокрема, таймер встановлення живлення (PWRT), що входить до складу МК сімейства PIC16  починає відлік часу після того, як напруга живлення перетнула рівень близько 1,2-1,8 В. По закінченні витримки близько 72 мс вважається, що напруга досягла номіналу.
Відразу після виходу із стану скидання МК виконує наступні дії:

  • запускає генератор синхронізації МК. Для стабілізації частоти тактування внутрішніми засобами формується затримка часу;
  • зчитує енергонезалежні регістри конфігурації у відповідні регістри ОЗП (якщо необхідно);
  • завантажує в лічильник команд адресу початку робочої програми;
  • проводить вибірку першої програми з пам'яті програм і приступає до виконання програми.

Адреса елемента пам'яті, в якій зберігається код першої виконуваної команди, називають вектором початкового запуску або вектором скидання. В деяких МК ця адреса однозначно визначена і приведена в технічному описі. Про такі МК говорять, що вони мають фіксований вектор скидання. В інших МК вектор скидання може бути довільно визначений користувачем. На етапі програмування МК необхідний вектор початкового запуску записується в комірки з фіксованими адресами, і при виході МК з скидання автоматично завантажується в лічильник команд. Про такі МК говорять, що вони мають завантажуваний вектор скидання. Завантажуваний вектор скидання мають всі 8-розрядні МК фірми Motorola, виконані по структурі з єдиним адресним простором команд і даних.
Для переводу МК в стан скидання при сталій напрузі живлення достатньо подати сигнал високого або низького рівня (відповідно до специфікації МК) на вхід скидання (RESET). Звичайно для формування сигналу скидання при включенні напруги живлення і натисненні кнопки скидання використовують RC-ланцюг. Типові схеми формування сигналу скидання представлені на мал. 4.10.
Кнопка Кн призначена для «ручного» скидання МК при відладці. Діод VD перешкоджає попаданню на вхід RESET негативної напруги при виключенні живлення. Номінали R і С визначають затримку часу, необхідну для завершення всіх перехідних процесів при скиданні (вказуються в технічному описі на МК). Трігер Шмітта на вході допускає подачу сигналу скидання з ненормованою тривалістю фронту. За відсутності трігера Шмітта на вході доводиться використовувати спеціальну зовнішню схему формувача.
В сучасних МК лінія RESET звичайно є двонаправленою і має низький активний рівень. При натисненні кнопки «скидання» або включенні живлення буфер лінії встановлюється в режим введення і реалізує так зване зовнішнє скидання. МК може перейти в стан скидання також по сигналах пристроїв контролю стану, які є у складі контролера. В цьому випадку говорять, що МК знаходиться в стані внутрішнього скидання. При цьому буфер лінії RESET встановлюється в стан виведення з низьким логічним рівнем на виході. Даний сигнал може бути використаний для установки в початковий стан периферійних ІС.

 

 



Мал. 4.10. Типові схеми формування сигналу зовнішнього скидання для МК з високим активним рівнем сигналу скидання (а) і низьким активним рівнем сигналу скидання (б).
Порядок виходу МК із станів зовнішнього і внутрішнього скидання в цілому однаковий.

4.9.2. Блок детектування зниженої напруги живлення

В реальних умовах експлуатації може скластися така ситуація, при якій напруга живлення МК опуститься нижче мінімально допустимої, але не досягне порогу спрацювання схеми POR. В цих умовах МК може «зависнути». При відновленні напруги живлення до номінального значення МК залишиться непрацездатним.
Для відновлення працездатності системи  МК необхідно знову скинути. Для цієї мети в сучасних МК реалізований додатковий блок детектування зниженої напруги живлення. Такий модуль використовується в МК сімейства HC08 фірми Motorola, аналогічний модуль є у складі сімейства PIC17 фірми Microchip. Даний модуль генерує сигнал внутрішнього скидання при зниженні напруги живлення до рівня трохи нижче мінімально допустимого. Рівень спрацьовування блоку детектування зниженої напруги живлення значно перевищує напругу збереження даних в ОЗП МК. Подія скидання по сигналу блоку зниженої напруги живлення наголошується спеціальним бітом в одному з регістрів МК. Отже, програмно аналізуючи цей біт після скидання МК, можна встановити, що дані цілі, і продовжити виконання програми.


4.9.3. Сторожовий таймер

Якщо, не дивлячись на всі вжиті заходи, МК все ж таки «завис», то на випадок виходу з цього стану всі сучасні контролери мають вбудований модуль сторожового таймера. Принцип дії сторожового таймера показаний на мал. 4.11



Мал. 4.11. Принцип дії сторожового таймера.

Основу сторожового таймера складає багаторозрядний лічильник. При скиданні МК лічильник обнуляється. Після переходу МК в активний режим роботи значення лічильника починає збільшуватися незалежно від виконуваної програми. При досягненні лічильником максимального коду генерується сигнал внутрішнього скидання, і МК починає виконувати робочу програму спочатку.
Для виключення скидання по переповнюванню сторожового таймера робоча програма МК повинна періодично скидати лічильник. Скидання лічильника сторожового таймера здійснюється шляхом виконання спеціальної команди (наприклад, CLRWDT) або за допомогою запису деякого вказаного коду в один з регістрів спеціальних функцій. Тоді при нормальному, передбаченому розробником, порядку виконання робочої програми переповнювання лічильника сторожового таймера не відбувається, і він не робить впливу на роботу МК. Проте, якщо виконання робочої програми було порушено, наприклад, унаслідок «зависання», то велика вірогідність того, що лічильник не буде скинений вчасно. Тоді відбудеться скидання по переповнюванню сторожового таймера, і нормальний хід виконання робочої програми буде відновлений.
Модулі сторожових таймерів конкретних МК можуть мати різні особливості:

  • у ряді МК вектори зовнішнього скидання і скидання по переповнюванню сторожового таймера співпадають. Це не дозволяє виявити причину скидання програмним шляхом і утрудняє написання робочої програми. Більш високорівневі МК мають або різні вектори скидання, або відзначають подію скидання по переповнюванню сторожового таймера установкою спеціального біта в одному з регістрів спеціальних функцій;
  • в деяких МК при переході в один з режимів зниженого енергоспоживання, коли робоча програма не виконується, автоматично припиняється робота сторожового таймера. В інших МК сторожовий таймер має незалежний тактовий генератор, який продовжує функціонувати і в режимі очікування. В цьому випадку необхідно періодично виводити МК із стану очікування для скидання сторожового таймера. В PIC-контроллерах фірми Microchip виробітку таких скидань може бути заборонена шляхом запису нуля в спеціальний біт конфігурації WDTE.
Використовування сторожового таймера істотно підвищує здібність до самовідновлення системи на основі МК.

 

 

попередня тема наступна тема